package com.itlong.cloud.operate.service;

import com.itlong.cloud.POJO.DTO.operate.OperateSceneGetPageDTO;
import com.itlong.cloud.POJO.DTO.operate.OperateSceneSaveDTO;
import com.itlong.cloud.POJO.PO.OperateScenePO;
import com.itlong.cloud.POJO.VO.operate.OperateSceneVO;
import com.itlong.cloud.utils.page.Page;

/**
 * <desc>
 * 场景
 * </desc>
 *
 * @createDate 2021-03-25
 */
public interface IOperateSceneService {

    /**
     * <desc>
     * 添加场景
     * <desc/>
     *
     * @param saveDTO 场景新增
     * @return
     * @author zhouchun
     * @createDate 2021-03-25
     */
    Integer saveScene(OperateSceneSaveDTO saveDTO) throws Exception;

    /**
     * <desc>
     * 修改场景
     * <desc/>
     *
     * @param saveDTO 场景修改
     * @return
     * @author zhouchun
     * @createDate 2021-03-25
     */
    Integer updateScene(OperateSceneSaveDTO saveDTO) throws Exception;

    Integer getCountByName(String name);

    Integer getExcludeCountByName(String name, String sceneKey);

    /**
     * <desc>
     * 分页查询场景信息
     * <desc/>
     *
     * @param pageDTO 分页查询场景信息DTO
     * @return
     * @author zhouchun
     * @createDate 2021-03-26
     */
    Page<OperateSceneVO> getPage(OperateSceneGetPageDTO pageDTO) throws Exception;

    Integer userTypeIdCanDelete(String userTypeId);

    Integer delete(OperateScenePO m);

    OperateScenePO getOneBySceneId(String sceneId);

}